<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./AppendixG_files/filelist.xml">
<link rel=Edit-Time-Data href="./AppendixG_files/editdata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>Appendix G</title>
<style>
<!--
 /* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;
	mso-font-charset:2;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
@font-face
	{font-family:"Microsoft Sans Serif";
	panose-1:2 11 6 4 2 2 2 2 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1627421663 -2147483648 8 0 66047 0;}
@font-face
	{font-family:BrushScrD;
	panose-1:3 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:script;
	mso-font-pitch:variable;
	mso-font-signature:-2147483473 30971 0 0 147 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:windowtext;}
h1
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:1;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-font-kerning:0pt;
	mso-ansi-language:EN-GB;
	font-weight:normal;
	text-decoration:underline;
	text-underline:single;}
h2
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:normal;
	font-style:italic;
	mso-bidi-font-style:normal;}
h3
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:normal;}
h4
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:4;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:bold;
	mso-bidi-font-weight:normal;
	text-decoration:underline;
	text-underline:single;}
h5
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:5;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:bold;
	mso-bidi-font-weight:normal;
	text-decoration:underline;
	text-underline:single;}
h6
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	text-indent:.5in;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:6;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:normal;
	font-style:italic;
	mso-bidi-font-style:normal;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:7;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-style:italic;
	mso-bidi-font-style:normal;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:8;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	text-decoration:underline;
	text-underline:single;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:9;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:11.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:22.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:33.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:44.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:55.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:66.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:77.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:88.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:99.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:center 207.65pt right 415.3pt;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:center 207.65pt right 415.3pt;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
	{mso-style-next:"Index 1";
	margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:6.0pt;
	margin-left:0in;
	text-align:center;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:15.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	font-weight:bold;}
span.MsoFootnoteReference
	{vertical-align:super;}
span.MsoEndnoteReference
	{vertical-align:super;}
p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
	{margin:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:windowtext;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
	{margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:13.5pt;
	margin-bottom:.0001pt;
	text-align:justify;
	text-indent:.65pt;
	mso-pagination:widow-orphan;
	mso-layout-grid-align:none;
	text-autospace:none;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
	{margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	border:none;
	mso-border-top-alt:solid windowtext 1.5pt;
	mso-border-bottom-alt:solid windowtext 1.5pt;
	padding:0in;
	mso-padding-alt:1.0pt 0in 1.0pt 0in;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3
	{margin:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyTextIndent2, li.MsoBodyTextIndent2, div.MsoBodyTextIndent2
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:13.5pt;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	mso-layout-grid-align:none;
	text-autospace:none;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyTextIndent3, li.MsoBodyTextIndent3, div.MsoBodyTextIndent3
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoBlockText, li.MsoBlockText, div.MsoBlockText
	{margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:3.5in;
	margin-bottom:.0001pt;
	text-align:justify;
	text-indent:-3.5in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
a:link, span.MsoHyperlink
	{mso-style-parent:"";
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
strong
	{mso-bidi-font-weight:normal;}
em
	{mso-bidi-font-style:normal;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	background:navy;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:Tahoma;
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";
	color:black;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";
	color:windowtext;
	mso-ansi-language:EN-GB;}
p
	{margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
span.Typewriter
	{mso-style-name:Typewriter;
	mso-style-parent:"";
	mso-ansi-font-size:10.0pt;
	mso-ascii-font-family:"Courier New";
	mso-hansi-font-family:"Courier New";}
span.l
	{mso-style-name:l;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1027"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]--><!--[if gte mso 9]><xml>
 <u1:DocumentProperties>
  <u1:Author> </u1:Author>
  <u1:Template>Normal</u1:Template>
  <u1:LastAuthor> </u1:LastAuthor>
  <u1:Revision>1</u1:Revision>
  <u1:TotalTime>0</u1:TotalTime>
  <u1:Created>2005-01-15T18:33:00Z</u1:Created>
  <u1:LastSaved>2005-01-15T18:33:00Z</u1:LastSaved>
  <u1:Pages>7</u1:Pages>
  <u1:Words>1442</u1:Words>
  <u1:Characters>8224</u1:Characters>
  <u1:Company> </u1:Company>
  <u1:Lines>68</u1:Lines>
  <u1:Paragraphs>16</u1:Paragraphs>
  <u1:CharactersWithSpaces>10099</u1:CharactersWithSpaces>
  <u1:Version>9.2720</u1:Version>
 </u1:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <u2:WordDocument>
  <u2:DisplayHorizontalDrawingGridEvery>0</u2:DisplayHorizontalDrawingGridEvery>
  <u2:DisplayVerticalDrawingGridEvery>0</u2:DisplayVerticalDrawingGridEvery>
  <u2:UseMarginsForDrawingGridOrigin/>
  <u2:Compatibility>
   <u2:FootnoteLayoutLikeWW8/>
   <u2:ShapeLayoutLikeWW8/>
   <u2:AlignTablesRowByRow/>
   <u2:ForgetLastTabAlignment/>
   <u2:LayoutRawTableWidth/>
   <u2:LayoutTableRowsApart/>
  </u2:Compatibility>
 </u2:WordDocument>
</xml><![endif]-->
</head>

<body bgcolor=silver lang=EN-US link=blue vlink=purple style='tab-interval:
.5in'>

<div class=Section1>

<div align=center>

<table border=0 cellpadding=0 width="80%" bgcolor=white style='width:80.0%;
 mso-cellspacing:1.5pt;background:white;mso-padding-alt:75.0pt 75.0pt 75.0pt 75.0pt'>
 <tr>
  <td width="100%" style='width:100.0%;padding:75.0pt 75.0pt 75.0pt 75.0pt'>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <div align=center>
  <table border=0 cellspacing=0 cellpadding=0 width=432 style='width:4.5in;
   border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
   mso-padding-alt:0in 5.4pt 0in 5.4pt'>
   <tr>
    <td width=492 valign=top style='width:368.75pt;border:solid windowtext .5pt;
    padding:0in 5.4pt 0in 5.4pt'>
    <p class=MsoTitle align=left style='text-align:left'><span
    style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
    font-weight:normal;mso-bidi-font-weight:bold'><a href="QiPrograms.zip">Download
    Programs</a> <o:p></o:p></span></p>
    </td>
    <td width=492 valign=top style='width:368.75pt;border:solid windowtext .5pt;
    border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
    <p class=MsoTitle align=left style='text-align:left'><span
    style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
    font-weight:normal;mso-bidi-font-weight:bold'><a href="contents.htm">Go to
    Contents Page</a><o:p></o:p></span></p>
    </td>
   </tr>
  </table>
  </div>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'>Note that this HTML page was
  generated from Word 2000.<span style="mso-spacerun: yes">&nbsp; </span>Some
  of the code cannot be pasted into Qi. You are advised to download the program
  files through the above link.<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-left:.5in;text-align:center'><span
  style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-left:.5in;text-align:center'><span
  style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>Appendix G<u3:p></u3:p></span></p>
  <p class=MsoNormal align=center style='margin-left:.5in;text-align:center'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal align=center style='margin-left:.5in;text-align:center;
  mso-outline-level:1'><span lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>A Case Study: an </span><span style='font-size:18.0pt;
  mso-bidi-font-size:10.0pt;font-family:BrushScrD;mso-bidi-font-style:italic'>L
  </span><span lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>Interpreter in Qi<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>This
  appendix presents a complete interpreter for </span><span style='font-family:
  BrushScrD;mso-bidi-font-style:italic'>L</span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'> written in Qi and based on the
  semantics</span><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>semantics</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp;</span>for </span><span style='font-family:
  BrushScrD;mso-bidi-font-style:italic'>L</span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'> given in appendix D.<span
  style="mso-spacerun: yes">&nbsp;&nbsp; </span>This program</span><a
  style='mso-footnote-id:ftn1' href="#_ftn1" name="_ftnref1" title=""><span
  class=MsoFootnoteReference><span lang=EN-GB style='font-family:Wingdings;
  mso-ascii-font-family:"Microsoft Sans Serif";mso-hansi-font-family:"Microsoft Sans Serif";
  mso-ansi-language:EN-GB;mso-char-type:symbol;mso-symbol-font-family:Wingdings'><span
  style='mso-char-type:symbol;mso-symbol-font-family:Wingdings'>0</span></span></span></a><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'> </span><span style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>is designed
  both illustrate the semantics of </span><span style='font-family:BrushScrD;
  mso-bidi-font-style:italic'>L</span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>, and also to present a guide to
  writing type-secure programs in Qi by reference to a small program with a
  complex collection of datatypes. We begin by defining the datatypes of </span><span
  style='font-family:BrushScrD;mso-bidi-font-style:italic'>L<i>.</i><span
  style="mso-spacerun: yes">&nbsp; </span></span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>I&#8217;ve slightly simplified the syntax
  of</span><span style='font-family:BrushScrD;mso-bidi-font-style:italic'> L </span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>in
  this program.<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(datatype number<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;</span>______________________________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;</span>(number? X) : verified &gt;&gt; X : number;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(datatype primitive_object<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : variable;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>_____________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : primitive_object;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : symbol;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>___________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : primitive_object;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : string;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>___________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : primitive_object;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : boolean;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>___________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : primitive_object;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : number;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>___________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X : primitive_object;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <span style='font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:
  "Times New Roman";color:black;mso-ansi-language:EN-US;mso-fareast-language:
  EN-US;mso-bidi-language:AR-SA'><br clear=all style='mso-special-character:
  line-break;page-break-before:always'>
  </span>
  <p><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>X : character;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>___________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span>X : primitive_object;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>________________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>[ ] : primitive_object;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(datatype pattern<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : primitive_object;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>___________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : pattern;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>P1 : pattern; P2 : pattern;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>===================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[cons P1 P2] : pattern;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>P1 : pattern; P2 : pattern;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>===================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[@p P1 P2] : pattern;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;</span>(datatype variable<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>if (variable? X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>_______________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>X : variable;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>(datatype l_formula<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : pattern;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>__________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : l_formula; Y : l_formula; Z : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>================================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[if X Y Z] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : variable; Y : l_formula; Z : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>===============================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[let X Y Z] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>X : l_formula; Y : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>=====================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[cons X Y] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : l_formula; Y : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>=====================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[@p X Y] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : l_formula; Y : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>=====================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[where X Y] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : l_formula; Y : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>=====================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[= X Y] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X : l_formula; Y : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>=====================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[X Y] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>Xn : (list l_formula);<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[cases | Xn] : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>P : pattern; X : l_formula;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>====================<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[/. P X] : l_formula;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Part
  of the task of the </span><span style='font-family:BrushScrD;mso-bidi-font-style:
  italic'>L</span><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'> interpreter is to perform addition and subtraction.<span
  style="mso-spacerun: yes">&nbsp; </span>Initially I wrote these lines of code
  as part of the interpreter:<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>[++ X] -&gt; (+ 1 (normal_form X))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>[-- X] -&gt; (- (normal_form X) 1)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>But
  this caused a type error message. The error is that + and - operate on
  numbers, and the rules for </span><span style='font-family:BrushScrD;
  mso-bidi-font-style:italic'>L </span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>formulae do not allow the inference
  of <b>X : number </b>from <b>[- - X] : l_formula</b>. <u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>There
  are two solutions to the problem.<span style="mso-spacerun: yes">&nbsp;
  </span>The first is to represent numbers using a successor notation (so <b>3</b>
  would be <b>(succ (succ (succ 0))))</b>; this is the sort of solution which
  one would use in SML.<span style="mso-spacerun: yes">&nbsp; </span>The
  drawback is that it is obviously a clumsy representation. The chosen solution
  was to create special functions that add or subtract 1 from the input, if the
  input is a number and return the error output if it is not.<span
  style="mso-spacerun: yes">&nbsp; </span>This is neat.<span
  style="mso-spacerun: yes">&nbsp; </span>Here they are:<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define successor<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{A - -&gt; l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>X -&gt; (+ 1 X) <span style='mso-tab-count:1'>&nbsp;&nbsp; </span>where
  (number? X) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>_ -&gt; &quot;error!&quot;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define predecessor<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{A - -&gt; l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>X -&gt; (- X 1) <span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>where
  (number? X) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp; </span>_ -&gt; &quot;error!&quot;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>To typecheck these functions we add
  an extra rule<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(datatype number<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;</span>_______________________________<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>(number? X) : verified &gt;&gt; X : number;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>The code for the </span><span
  style='font-family:BrushScrD;mso-bidi-font-style:italic'>L</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-bidi-font-style:italic'> </span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;</span>interpreter now follows.<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define l_interpreter<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{A - -&gt; B}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>_ -&gt; (read_eval_print_loop <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(output &quot;~%L
  interpreter ~%~%~%~%l-interp - -&gt; &quot;) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(output
  &quot;~A~%&quot; (normal_form (input+ : l_formula)))))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define read_eval_print_loop<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{string - -&gt; string - -&gt; A}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>_ _ -&gt;<span style="mso-spacerun: yes">&nbsp;
  </span>(read_eval_print_loop <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(output &quot;l-interp - -&gt; &quot;) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(output &quot;~A~%&quot;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(normal_form (input+ : l_formula)))))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;</span><span style="mso-spacerun: yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define ==&gt;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>{l_formula - -&gt; l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[= X Y] -&gt; (let X* (normal_form X) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(let Y* (normal_form Y) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (or (eval_error? X*) (eval_error? Y*))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>&quot;error!&quot;<span style="mso-spacerun: yes">&nbsp; </span>(if (=
  X* Y*) true false))))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[[/. P X] Y] -&gt; (let Match (match P (normal_form
  Y))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (no_match? Match) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>&quot;no match&quot;<span style="mso-spacerun: yes">&nbsp; </span>(sub
  Match X)))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[if X Y Z] -&gt; (let X* (normal_form X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (= X* true)<span style="mso-spacerun: yes">&nbsp; </span>Y<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (= X* false)<span style="mso-spacerun: yes">&nbsp; </span>Z<span
  style="mso-spacerun: yes">&nbsp; </span>&quot;error!&quot;)))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[let X Y Z] -&gt; [[/. X Z] Y]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[@p X Y] -&gt; (let X* (normal_form X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(let Y* (normal_form Y)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (or (eval_error? X*) (eval_error? Y*))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>&quot;error!&quot;<span style="mso-spacerun: yes">&nbsp; </span>[@p X*
  Y*])))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[cons X Y] -&gt; (let X* (normal_form X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(let Y* (normal_form Y)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (or (eval_error? X*) (eval_error? Y*))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>&quot;error!&quot;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>[cons X* Y*])))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[++ X] -&gt; (successor (normal_form X))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[- - X] -&gt; (predecessor (normal_form X))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[cases X1 | Xn] -&gt; (let Case1 (normal_form X1)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (= Case1 &quot;no match&quot;)<span style="mso-spacerun:
  yes">&nbsp; </span>[cases | Xn] Case1))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[cases] -&gt; &quot;error!&quot;<span
  style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[where X Y] -&gt; [if X Y &quot;no match&quot;]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[y-combinator</span></b><!--[if supportFields]><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-begin'></span></span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'> XE &quot;</span></b><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>combinator</span></b><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span></b><![endif]--><!--[if supportFields]><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-end'></span></span></b><![endif]--><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp;</span>[/. X Y]] -&gt; (replace X
  [y-combinator [/. X Y]] Y)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[X Y] -&gt; (let X* (normal_form X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(let Y* (normal_form Y)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (or (eval_error? X*) (eval_error? Y*))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>&quot;error!&quot;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>[X*
  Y*])))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>X -&gt; X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define eval_error?<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{l_formula - -&gt; boolean}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>&quot;error!&quot; -&gt; true<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>&quot;no match&quot; -&gt; true<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>_ -&gt; false) <span style="mso-spacerun:
  yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define normal_form<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{l_formula - -&gt; l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X -&gt; (fix ==&gt; X)) <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span><span style="mso-spacerun: yes">&nbsp;</span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define successor<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{A - -&gt; l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>X -&gt; (+ X 1) where (number? X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>_ -&gt; &quot;error!&quot;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define predecessor<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{A - -&gt; l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>X -&gt; (- X 1) where (number? X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>_ -&gt; &quot;error!&quot;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define sub<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{[(pattern * l_formula)] - -&gt; l_formula - -&gt;
  l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span><span style="mso-spacerun: yes">&nbsp;</span>[] X -&gt; X<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[(@p Var Val) | Assoc] X -&gt; (sub Assoc (replace
  Var Val X)))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define match<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>{pattern - -&gt; l_formula - -&gt; [(pattern *
  l_formula)]}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>P X -&gt; [] <span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;&nbsp;</span>where (== P X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>P X -&gt; [(@p P X)]<span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>where (variable? P)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>[cons P1 P2] [cons X Y] <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-indent:.5in'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>-&gt;
  (let Match1 (match P1 X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (no_match? Match1)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>Match1<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(let Match2 (match P2 Y)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (no_match? Match2)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Match2<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;</span>(append Match1 Match2)))))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>[@p P1 P2] [@p X Y] -&gt; (let Match1 (match
  P1 X)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (no_match? Match1)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>Match1<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(let Match2 (match P2 Y)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>(if (no_match? Match2)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Match2<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;</span>(append Match1 Match2)))))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>_ _ -&gt; [(@p no matching)])<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define no_match?<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{[(pattern * l_formula)] - -&gt; boolean}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>[(@p no matching)] -&gt; true<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>_ -&gt; false)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define replace<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{pattern - -&gt; l_formula - -&gt; l_formula - -&gt;
  l_formula}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [let V X Y] -&gt; [let V X Y]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X Y X -&gt; Y<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [= X Y] -&gt; [= (replace V W X) (replace V W Y)]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [/. P X] -&gt; [/. P (replace V W X)]<span
  style="mso-spacerun: yes">&nbsp; </span>where (free? V P)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [if X Y Z] <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>-&gt; [if (replace V W X) (replace V W Y) (replace V
  W Z)]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [let X Y Z] -&gt; [let X (replace V W Y)
  (replace V W Z)]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [@p X Y] -&gt; [@p (replace V W X) (replace V W
  Y)]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [cons X Y] -&gt; [cons (replace V W X) (replace
  V W Y)]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span><span style='letter-spacing:-.6pt'>V W [cases | Xn]
  -&gt; [cases | (map (/. Xi (replace V W Xi)) Xn)]<u3:p></u3:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [where X Y] -&gt; [where (replace V W X)
  (replace V W Y)]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>V W [X Y] -&gt; [(replace V W X) (replace V W Y)]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp; </span>_ _ X -&gt; X) <span style='mso-tab-count:
  1'>&nbsp; </span><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(define free?<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp; </span>{pattern - -&gt; pattern - -&gt; boolean}<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>P P -&gt; false <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>P [cons P1 P2] -&gt; (and (free? P P1) (free? P P2))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>P [@p P1 P2] -&gt; (and (free? P P1) (free? P P2))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>_ _ -&gt; true)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>After
  some debugging of earlier versions, I ran this program.<span
  style="mso-spacerun: yes">&nbsp; </span>Here is a script; Qi is running under
  CLisp on a 2.6GHz processor with 0.5 Gb of memory.<span style="mso-spacerun:
  yes">&nbsp; </span><span style="mso-spacerun: yes">&nbsp;</span><u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>Qi, Version 5.0<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>Copyright 2000-2005 Mark Tarver</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;Tarver&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(0+) (load &quot;Qi
  Programs/G/interpreter.qi&quot;)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>ok : symbol<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>number<u3:p></u3:p> : unit</span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>primitive_object<u3:p></u3:p> : unit</span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>pattern<u3:p></u3:p> : unit</span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>variable<u3:p></u3:p> : unit</span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>l_formula<u3:p></u3:p> : unit</span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>l_interpreter : (A - -&gt; B)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>read_eval_print_loop : (string -
  -&gt; (string - -&gt; A))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>==&gt; : (l_formula - -&gt; l_formula)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>eval_error? : (l_formula - -&gt;
  boolean)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>normal_form : (l_formula - -&gt;
  l_formula)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>successor : (A - -&gt; l_formula)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>predecessor : (A - -&gt; l_formula)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>sub : ((list (pattern * l_formula)) -
  -&gt; (l_formula - -&gt; l_formula))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>match : (pattern - -&gt; (l_formula -
  -&gt; (list (pattern * l_formula))))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>no_match? : ((list (pattern *
  l_formula)) - -&gt; boolean)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>replace : (pattern - -&gt; (l_formula
  - -&gt; (l_formula - -&gt; l_formula)))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>free? : (pattern - -&gt; (pattern -
  -&gt; boolean))<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>typechecked in 719827 inferences.<span style='color:black'><o:p></o:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";color:black'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>Real time: 3.3448095 sec.<span style='color:black'><o:p></o:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>Run time: 3.3347952 sec.<span style='color:black'><o:p></o:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>Space: 109385144 Bytes<span style='color:black'><o:p></o:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>GC: 173, GC time: 0.7410656 sec.<span style='color:black'><o:p></o:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>loaded : symbol<span style='color:black'><o:p></o:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>(2+) (l_interpreter start)<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;mso-outline-level:1'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>L
  interpreter<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>l-interp - -&gt; [[/. 3 5] 3]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>5<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Here
  is the combinator</span><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>combinator</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp;</span>definition of the addition function
  from the chapter on lambda calculus.<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>l-interp - -&gt; [[[y-combinator</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span></b><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>combinator</span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-bidi-font-weight:
  bold'><span style="mso-spacerun: yes">&nbsp;</span><u3:p></u3:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>[/. ADD [/. X [/. Y [if [= X 0] Y <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:2.5in;text-indent:-45.0pt'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>[[ADD
  [++ X]] [- - Y]]]]]]]<span style="mso-spacerun: yes">&nbsp; </span>3] 4]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in'><b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>7<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Here
  is a combinator</span><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>combinator</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp;</span>definition of the append function used
  to append two lists.<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>l-interp<span
  style="mso-spacerun: yes">&nbsp; </span>- -&gt;<span style="mso-spacerun:
  yes">&nbsp; </span>[[[y-combinator</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span></b><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>combinator</span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-bidi-font-weight:
  bold'><span style="mso-spacerun: yes">&nbsp;</span>[/. APPEND [/. X [/. Y<u3:p></u3:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
  .5in'><b><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>[if [= X []] Y <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;</span>[cons [[/. [cons A B] A] X] <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span style='mso-tab-count:
  2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;&nbsp;</span>[[APPEND [[/. [cons A B] B] X]]
  Y]]]]]]] <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:2.0in;text-align:justify;text-indent:
  .5in'><b><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>[cons 1 []]] [cons 2 []]]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>[cons
  1 [cons 2 []]]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Here
  is a combinator</span><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>combinator</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp;</span>definition of our mutually recursive
  even and odd functions from chapter 13, used to test whether 5 is even.<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&nbsp;<u3:p></u3:p></span></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>l-interp
  - -&gt; [[[/. [@p X Y] X] <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
  .5in'><b><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>[y-combinator</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span></b><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>combinator</span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-bidi-font-weight:
  bold'><span style="mso-spacerun: yes">&nbsp;&nbsp;</span>[/. T <u3:p></u3:p></span></span></b></p>
  <p class=MsoNormal style='margin-left:1.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">&nbsp; </span>[@p [/. A [cases [[/. 1 false] A]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>[[/. X [[[/. [@p X Y] Y] T] [- - X]]] A]]]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>[/. A [cases [[/. 1 true] A]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>[[/. X
  [[[/. [@p X Y] X] T] [- - X]]] <u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
  .5in'><b><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>A]]]]]]]<span style="mso-spacerun: yes">&nbsp; </span>5]<u3:p></u3:p></span></b></p>
  <p class=MsoNormal style='margin-left:.5in;text-align:justify'><b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>false<u3:p></u3:p></span></b></p>
  <span style='font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:
  "Times New Roman";color:black;mso-ansi-language:EN-US;mso-fareast-language:
  EN-US;mso-bidi-language:AR-SA'><br clear=all style='mso-special-character:
  line-break;page-break-before:always'>
  </span>
  <p><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  <p class=MsoNormal>&nbsp;<u3:p></u3:p></p>
  <p><br clear=all style='mso-special-character:line-break'>
  </p>
  <div class=MsoNormal><span style='font-size:12.0pt'>
  <hr size=1 width="33%" align=left>
  </span></div>
  <p class=MsoFootnoteText><a style='mso-footnote-id:ftn2' href="#_ftn2"
  name="_ftnref2" title=""><span class=MsoFootnoteReference><span
  style='font-family:Wingdings;mso-ascii-font-family:"Microsoft Sans Serif";
  mso-hansi-font-family:"Microsoft Sans Serif";mso-char-type:symbol;mso-symbol-font-family:
  Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:Wingdings'>0</span></span></span></a><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  </span><span style='font-size:8.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Load Qi Programs/G/interp.syntax
  and Qi Programs/G/interp.semantics.<u3:p></u3:p></span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal><span style='font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

</div>

<div style='mso-element:footnote-list'><![if !supportFootnotes]><br clear=all>

<hr align=left size=1 width="33%">

<![endif]>

<div style='mso-element:footnote' id=ftn1>

<p class=MsoNormal><a style='mso-footnote-id:ftn1' href="#_ftnref1" name="_ftn1"
title=""></a><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>

</div>

<div style='mso-element:footnote' id=ftn2>

<p class=MsoNormal><a style='mso-footnote-id:ftn2' href="#_ftnref2" name="_ftn2"
title=""></a><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>

</div>

</div>

</body>

</html>
